Typography is the art and technique of working with type. Digital typography refers to manipulation and display of digital images produced on digital composition systems such as in word processors, spreadsheets, desktop publishing, web browsers, and other computer applications for rendering on displays and digital printers, etc. Digital typography is based on a hierarchy of objects called characters, fonts, and font families or typefaces. Numeric values or measurements related to those objects can be divided into character metrics, font metrics, and typeface metrics. Often all information about a font family, or typeface, is stored in a set of font files or in a font table.
The following definitions are used throughout this specification and should be helpful in understanding the invention described herein.
A glyph is a two dimensional graphical bitmap or image of a character, where a character is a textual unit of type. Letters, digits, punctuation marks, and mathematical symbols are examples of characters. Glyphs comprise the actual graphical information associated with displaying the character on the user interface.
A font is a set of glyphs having common features, e.g., the same typeface, same style and same weight. For example, a font may consist of characters that include the letters Aa-Zz and numbers 0-9 all in one typeface, such as Arial.
In font design, there is a concept called the bounding box. This bounding box or “bbox” is the imaginary, bounding, two-dimensional box within which displayable glyph information (or a displayable character for a particular glyph) in a font will fit. Given that the size of the displayable character for a particular glyph may be different than another, the bboxes may have different dimensions from one another. Given this character dependence, the bboxes are sometimes referred to as character bboxes.
Typographers use small units of measure called “points” to specify font size. A point is approximately equal to 1/72 of an inch, and, utilizing this unit of measure helps make the size of the font somewhat independent from the particular limitations of the display device.
A straight layout of characters simply uses the bbox, plus a uniform space between adjacent letters (or some other “advance width” associated with each glyph). For example, in Courier font, some of the letters may appear further apart than is pleasing to the reader's eye. This is typically the result achieved on an old, manual typewriter and mono-spaced type fonts. These mono-spaced fonts are generally less pleasing to the eye since many displayed characters appear too far apart.
A method of adjusting the spacing between letters is often utilized in more advanced fonts and is typically referred to as proportional spacing. The term “kerning” refers to specific information to adjust the relative horizontal positions of some coincident glyphs in a string of text. Kerning consists of modifying the spacing between two successive glyphs according to their outlines to make the combination of the two glyphs more pleasing to the eye. For example, “A” and “V”, if adjacent, may have a reduced space between them than other coincident glyphs such as “A” and “A”. The kerning distance values are typically ordered pairs, and can be expressed in horizontal or vertical directions, depending on layout and/or script. The kerning distance values are typically stored in a font “table” as attributes of a particular character for a particular font, as part of the glyph for that character. Consequently kerning helps solve the spacing problem with respect to two coincident glyphs placed side by side.
That said however, a similar spacing problem arises with respect to the use subscript text and/or superscript text in combination with a base character, especially when the superscript or subscript text comprises a plurality of characters that modify the base character. Often the resulting combination of the base character and the subscript or superscript character(s) appears oddly because the two are not sufficiently close together, e.g., as if the superscript or subscript does not modify the base character because the placement is too far apart.
It is with respect to these and other considerations that the present invention has been made.